package com.hemerasolutions.v2trainer.component.interfaces.list;

import java.util.Map;

import javax.faces.event.ValueChangeEvent;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.table.IntensityZoneTableCompInterface;
import com.hemerasolutions.v2trainer.model.exercise.Exercise;
import com.hemerasolutions.v2trainer.model.exercise.VersionableExercise;
import com.hemerasolutions.v2trainer.model.exercise.intensity.IntensityExecution;
import com.hemerasolutions.v2trainer.model.exercise.intensity.IntensityTable;
import com.hemerasolutions.v2trainer.model.modality.Modality;

public interface IntensityZoneListCompInterface extends BaseComponentInterface {

	public abstract void refresh();

	public abstract void setSelExercise(Exercise selExercise);

	public abstract Exercise getSelExercise();

	public abstract void setSelIntensityZoneTable(IntensityZoneTableCompInterface selIntensityZoneTable);

	public abstract IntensityZoneTableCompInterface getSelIntensityZoneTable();

	public abstract void setModality(Modality modality);

	public abstract Modality getModality();

	public abstract void setIntensityZoneTables(Map<Long, IntensityZoneTableCompInterface> intensityZoneTables);

	public abstract Map<Long, IntensityZoneTableCompInterface> getIntensityZoneTables();

	public abstract void setExercise(Exercise exercise);

	public abstract Exercise getExercise();

	public abstract void replicateGeneral();

	public abstract void copyLevelIntensity();

	public abstract void copyZones();

	public abstract void setFromIntensityTable(IntensityTable fromIntensityTable);

	public abstract IntensityTable getFromIntensityTable();

	public abstract void setSelIntensityExecution(IntensityExecution selIntensityExecution);

	public abstract IntensityExecution getSelIntensityExecution();

	public abstract VersionableExercise getVersionabeExercise();

	public abstract void setVersionabeExercise(VersionableExercise versionabeExercise);

	void onVersionChanged(ValueChangeEvent e);

}
